#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@Filename      :recursive_func.py
@Description   :递归函数
@Datetime      :2020/09/14 18:17:55
@Author        :AshJo
@Version       :v1.0
"""

''' RecursionError:
maximum recursion depth exceeded while calling a Python object '''
# 递归的最大深度为1000层：节省内存空间,约束用户无限地使用内存空间

# 修改递归的最大深度：
# import sys
# sys.setrecursionlimit(1000000)

# count = 0


# def func():
#     global count
#     count += 1
#     print(count)
#     # 条件判断，控制递归函数
#     if count >= 3:
#         return
#     func()
#     print(456)

# 带参数的递归函数
# def func(count):
#     count += 1
#     print(count)
#     # count/10 商5余3
#     if divmod(count, 10) == (5, 3):
#         return
#     if count >= 5:
#         return 5
#     func(count)


# func(1)

# 带返回值的递归函数
# def func(count):
#     count += 1
#     print(count)
#     if count >= 5:
#         return 5
#     ret = func(count)
#     print(count, ':', ret)
#     return ret


# print('--->', func(1))


# 1.计算阶乘 100! = 100*99*98....*1 # 循环 # 递归
def Factorial(num):
    if num == 1:
        return num
    else:
        return num*Factorial(num-1)


ret = Factorial(5)
print(ret)
# 2.os模块:查看一个文件夹下的所有文件,这个文件夹下面还有文件夹,不能用walk
# 3.os模块:查看一个文件夹下所有文件的大小,这个文件夹下面还有文件夹,不能用walk
# 4.计算斐波那契数列(1 1 2 3 5) 找第100个数

# 5.三级菜单
